Description |
---|
Exportation vers un logiciel de découpage pour imprimantes 3D basé sur une macro similaire par cae2100. Exporte un seul fichier stl pour chaque partie visible dans le même répertoire que le fichier de dessin original, puis l'ouvre dans le logiciel de découpage. Ce code, lorsqu'il est exécuté, exporte le dessin actuellement ouvert vers plusieurs fichiers STL, nommés d'après les étiquettes des pièces et ouvrez-le dans le logiciel de découpage que vous utilisez. La macro recherche 'Cura' dans le chemin mais vous pouvez ajouter tout autre découpage en modifiant la chaîne dans la macro. Version macro : 1.1 Date dernière modification : 2020-10-30 Version FreeCAD : All Téléchargement : ToolBar Icon Auteur: WayofWood |
Auteur |
WayofWood |
Téléchargement |
ToolBar Icon |
Liens |
Page des macros Comment installer une macro Comment créer une barre d'outils |
Version Macro |
1.1 |
Dernière modification |
2020-10-30 |
Version(s) FreeCAD |
All |
Raccourci clavier |
None |
Voir aussi |
Macro 3d Printer Slicer ![]() |
Ce code, lorsqu'il est exécuté, exportera les corps visibles au niveau supérieur (les corps plus profonds dans l'arborescence seront ignorés) de la conception actuellement ouverte vers des fichiers STL individuels, et les ouvrira dans le logiciel de découpage que vous utilisez. Cette macro recherchera Cura comme valeur par défaut, mais vous pouvez la remplacer par n'importe quel autre curseur en modifiant la variable SLICERAPP dans le code source.
Il est préférable de l'utiliser en créant un lien vers la macro dans la barre d'outils, et lorsque vous êtes prêt à découper l'objet, cliquez simplement dessus et vos objets, tels qu'ils apparaissent à l'écran dans FreeCAD apparaîtront sur l'interface de votre logiciel de découpage, prêts à découper. Il créera également plusieurs fichiers STL avec le même nom de fichier que le fichier de conception et l'étiquette de pièce dans le même répertoire que le fichier de conception.
La variable SLICERAPP peut être remplacée par n'importe quel logiciel de découpage de votre choix. Si un objet spécifique n'est pas exporté, vous devrez peut-être ajouter le type correspondant au tableau doexport.
Macro_3d_Printer_Slicer_Individual_Parts.py
import FreeCAD import Mesh import sys import math import os import subprocess SLICERAPP= "cura" # Put your Slicer program here # some fuctions def getPlacement(quat,vect,obj): if quat[3] > -1 and quat[3] < 1: delta = math.acos(quat[3])*2.0 scale = math.sin(delta/2) rx = quat[0]/scale ry = quat[1]/scale rz = quat[2]/scale else: delta = 0 rx = 0 ry = 0 rz = 1 info0 = "translation "+str(vect.x)+" "+str(vect.y)+" "+str(vect.z) info1 = "rotation "+str(rx)+" "+str(ry)+" "+str(rz)+" "+str(delta) return info0+" "+info1 # some definitions placement = App.Placement(App.Vector(0,0,0),App.Rotation(0,0,0,1)) # user need to set this directory where slicing software is located OutDir = FreeCAD.ActiveDocument.FileName.replace(".FCStd", "--") visible_objs = [] # Get Objects in document doc = App.ActiveDocument objs = doc.Objects stlFile = "" stlFiles = [ SLICERAPP ] # hide all for obj in objs: print(obj.Label + "//" + obj.TypeId) print(len(obj.InList)) if obj.ViewObject.isVisible() and hasattr(obj, 'Shape') and (len(obj.InList) <= 1): visible_objs.append(obj) for obj in visible_objs: stlFile = OutDir+str(obj.Label)+".stl" Mesh.export([obj],stlFile) stlFiles.append(stlFile) print ("Exporting " + stlFile + "\n") print ("Calling subprocess: " + str(stlFiles)+"\n") subprocess.Popen(stlFiles)
Merci à cae2100 pour le développement du code macro d'origine - également disponible ici.
Merci à Wmayer pour son aide dans l'écriture de ce script.
Original forum topic: http://forum.freecadweb.org/viewtopic.php?f=10&t=4686